# package containing subtle implementations of PQC primitives

package(default_visibility = ["//:__subpackages__"])

licenses(["notice"])

cc_library(
    name = "cecpq2_hkdf_sender_kem_boringssl",
    srcs = ["cecpq2_hkdf_sender_kem_boringssl.cc"],
    hdrs = ["cecpq2_hkdf_sender_kem_boringssl.h"],
    visibility = ["//visibility:public"],
    deps = [
        "@boringssl//:crypto",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/strings",
        "@tink_cc//subtle",
        "@tink_cc//subtle:subtle_util",
        "@tink_cc//util:secret_data",
        "@tink_cc//util:statusor",
    ],
)

cc_library(
    name = "cecpq2_hkdf_recipient_kem_boringssl",
    srcs = ["cecpq2_hkdf_recipient_kem_boringssl.cc"],
    hdrs = ["cecpq2_hkdf_recipient_kem_boringssl.h"],
    visibility = ["//visibility:public"],
    deps = [
        ":cecpq2_hkdf_sender_kem_boringssl",
        "@boringssl//:crypto",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/strings",
        "@tink_cc//subtle",
        "@tink_cc//subtle:subtle_util",
        "@tink_cc//util:secret_data",
        "@tink_cc//util:statusor",
    ],
)

cc_library(
    name = "cecpq2_subtle_boringssl_util",
    srcs = ["cecpq2_subtle_boringssl_util.cc"],
    hdrs = ["cecpq2_subtle_boringssl_util.h"],
    visibility = ["//visibility:public"],
    deps = [
        "@boringssl//:crypto",
        "@tink_cc//subtle",
        "@tink_cc//subtle:subtle_util",
        "@tink_cc//util:secret_data",
    ],
)

#tests
cc_test(
    name = "cecpq2_hkdf_sender_kem_boringssl_test",
    size = "small",
    srcs = ["cecpq2_hkdf_sender_kem_boringssl_test.cc"],
    copts = ["-Iexternal/gtest/include"],
    deps = [
        ":cecpq2_hkdf_recipient_kem_boringssl",
        ":cecpq2_hkdf_sender_kem_boringssl",
        ":cecpq2_subtle_boringssl_util",
        "@boringssl//:crypto",
        "@com_google_absl//absl/status",
        "@com_google_googletest//:gtest_main",
        "@tink_cc//config:tink_fips",
        "@tink_cc//subtle:random",
        "@tink_cc//util:test_matchers",
        "@tink_cc//util:test_util",
    ],
)

cc_test(
    name = "cecpq2_hkdf_recipient_kem_boringssl_test",
    size = "small",
    srcs = ["cecpq2_hkdf_recipient_kem_boringssl_test.cc"],
    copts = ["-Iexternal/gtest/include"],
    deps = [
        ":cecpq2_hkdf_recipient_kem_boringssl",
        ":cecpq2_subtle_boringssl_util",
        "@boringssl//:crypto",
        "@com_google_absl//absl/status",
        "@com_google_googletest//:gtest_main",
        "@tink_cc//config:tink_fips",
        "@tink_cc//subtle:random",
        "@tink_cc//util:test_matchers",
        "@tink_cc//util:test_util",
    ],
)

cc_test(
    name = "cecpq2_subtle_boringssl_util_test",
    size = "small",
    srcs = ["cecpq2_subtle_boringssl_util_test.cc"],
    copts = ["-Iexternal/gtest/include"],
    deps = [
        ":cecpq2_subtle_boringssl_util",
        "@com_google_googletest//:gtest_main",
        "@tink_cc//subtle:random",
        "@tink_cc//util:test_matchers",
        "@tink_cc//util:test_util",
    ],
)
